#include "StrJoin.h"
#include "IVisitor.h"

StrJoin::StrJoin(const ExprTypeList& strs, int nodeId):
    exprType(nodeId),
    _strs(strs)
{
}
    
StrJoin::~StrJoin()
{
    _strs.clear();
}
    
Ast::AstTypes StrJoin::type() const
{
    return Ast::StrJoin;
}
    

ExprTypeList StrJoin::strs()
{
    return _strs;
}

void StrJoin::setStrs(const ExprTypeList& strs)
{
    _strs = strs;
}

    
QString StrJoin::toString() const
{
    return QString("StrJoin[strs=%1]").
                arg(_strs.toString());
}
    
void StrJoin::accept(IVisitor* visitor, const SimpleNodePtr& node)
{
    visitor->visitStrJoin(node.dynamicCast<StrJoin>());
}
    
void StrJoin::traverse(IVisitor* visitor)
{
    _strs.traverse(visitor);
}